next up previous
Next: 3 Generic 64-bit Portability Up: 2 General 64-bit Considerations Previous: 2.1 The 64-bit Programming

2.2 Advantages of 64-bit

While moving to 64-bit can expose portability problems in your code, coding for 64-bit systems can be to your advantage.

The ability to efficiently perform logical operations on 64-bit values can increase the speed of applications like image processing and circuit simulation where large bit vectors or matrices are manipulated. If these operations are found in the performance critical sections of such applications, minor changes to use 64-bit long types can potentially double application performance. Usually, this type of tuning can be done with changes localized to the performance critical code.

The efficiency of arithmetic operations on 64-bit integers is potentially more than double when using 64-bit operations (as compared to emulating such operations in a 32-bit environment). As an example, encryption algorithms can benefit from 64-bit arithmetic and logical operations. Software changes may be required to utilize 64-bit operations, but the changes to exploit 64-bit integers are typically localized.

A 32-bit address space can be restrictive for some of today's large data base, engineering, and scientific programs. Typically, 32-bit systems can provide up to two gigabytes of usable main memory to applications, but this may not be enough for data intensive applications. A 64-bit address space may increase data base performance by permitting a huge data cache. A 64-bit engineering or scientific simulation permits problems to be solved that would otherwise be too large for a 32-bit address space.

But be aware that 64-bit programs have secondary costs that may increase their memory and cache requirements compared to a 32-bit version. Because pointers are represented as 64-bit values, the memory to store pointers will double.

Migration of supercomputer applications to Unix workstations is a case where porting is easier for 64-bit systems than 32-bit systems. Supercomputer applications are already adapted to 64-bit architectures. Running a supercomputer application on a 64-bit workstation may be less expensive than running it on a supercomputer and may provide a higher quality development environment and ready access to 3D graphics for visualization of results.

64-bit operating systems are very likely to support 64-bit file systems. Some application areas like geophysics and particle physics may require file sizes well in excess of two gigabytes (the general limit for 32-bit file systems).

Using 64-bit systems may also have miscellaneous benefits common to 64-bit processors and systems such as use of extra registers (particularly for floating point), improved subroutine argument passing, and faster memory to memory data movement.

Some of these advantages may be available in the 32-bit mode of 64-bit systems, though they are generally most conveniently used when running true 64-bit programs. For example, efficient 64-bit logical and arithmetic operations may be available to 32-bit programs.



next up previous
Next: 3 Generic 64-bit Portability Up: 2 General 64-bit Considerations Previous: 2.1 The 64-bit Programming



Mark Kilgard
Sat Dec 30 11:52:07 PST 1995